package Collection;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

/*
* JDK1.8之后推出了一个新特性：Lambda表达式
* 作用：可以更加简洁的代码实现匿名内部类
* 要求：
* 1不是任何匿名内部类都可以转换为Lambda表达式
* 2.Lambda表达式对接口的要求：只能是函数式接口
* 3：函数式接口：接口中要求实现类必须重写的方法只有一个*/
public class LambdaDemo {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
//匿名内部类写法
        Collections.sort(list, new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                return 0;
            }
        });
//        Lambda表达式写法,如果表达式方法体里面只有语句代码，方法体的{}可以不写，如果这句话有return，也一并不写
        Collections.sort(list,((o1, o2) -> o1.length()-o2.length()));
//        Lambda表达式的方法除只有一个，那么（）可以忽略不写
    }
}
